﻿using System;
using System.Runtime.Serialization;
using JTLeigh.Commerce.Spencer.Core.Service.Contracts;

namespace JTLeigh.Commerce.Spencer.Features.ProductImages.Service.Contracts.Runtime.GetProductImageSnapshot
{

	/// <summary>
	/// Request data contract for the <see cref="IProductImagesRuntimeService.GetProductImageSnapshot"/>
	/// operation.
	/// </summary>
    [DataContract(Name = "GetProductImageSnapshotReq", Namespace = "http://schemas.jtleigh.com/Commerce/Spencer/Features/ProductImages/1.0/Runtime/GetProductImageSnapshot/")]
    public class GetProductImageSnapshotRequest : RequestBase
	{

        /// <summary>
        /// Gets or sets the product identifier of the product whose image is to be retrieved.
        /// </summary>
        /// <value>A <see cref="FullyQualifiedProductId"/> object.</value>
        [DataMember(Name = "ProductId", IsRequired = true)]
        public FullyQualifiedProductId ProductId { get; set; }

        /// <summary>
		/// Gets or sets the well-known view code of the view of the product to retrieve.
		/// </summary>
		/// <value>A well-known view code <see cref="Byte"/>.</value>
		[DataMember(Name = "WellKnownViewCode", IsRequired = true)]
		public byte WellKnownViewCode { get; set; }

		/// <summary>
		/// Gets or sets the well-known size code of the size of the image to retrieve.
		/// </summary>
		/// <value>A well-known size code <see cref="Byte"/>.</value>
		[DataMember(Name = "WellKnownSizeCode", IsRequired = true)]
		public byte WellKnownSizeCode { get; set; }

	}

}
